<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>tinydtls: dtls.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">tinydtls
   &#160;<span id="projectnumber">0.8.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">dtls.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="tinydtls_8h_source.html">tinydtls.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="dtls__config_8h_source.html">dtls_config.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="dtls__time_8h_source.html">dtls_time.h</a>&quot;</code><br/>
<code>#include &lt;stdio.h&gt;</code><br/>
<code>#include &lt;stdlib.h&gt;</code><br/>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="uthash_8h_source.html">uthash.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="debug_8h_source.html">debug.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="numeric_8h_source.html">numeric.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="netq_8h_source.html">netq.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="dtls_8h_source.html">dtls.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="alert_8h_source.html">alert.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="session_8h_source.html">session.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="prng_8h_source.html">prng.h</a>&quot;</code><br/>
<code>#include &quot;sha2/sha2.h&quot;</code><br/>
</div>
<p><a href="dtls_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aebefc949b2298e7de7b95b715874d407"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aebefc949b2298e7de7b95b715874d407">dtls_set_version</a>(H, V)&#160;&#160;&#160;<a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>((H)-&gt;version, (V))</td></tr>
<tr class="separator:aebefc949b2298e7de7b95b715874d407"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e0ab8b3ce70468c29820cafe96cd365"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8e0ab8b3ce70468c29820cafe96cd365">dtls_set_content_type</a>(H, V)&#160;&#160;&#160;((H)-&gt;content_type = (V) &amp; 0xff)</td></tr>
<tr class="separator:a8e0ab8b3ce70468c29820cafe96cd365"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f723101896941fa44ea701c4dfd3591"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9f723101896941fa44ea701c4dfd3591">dtls_set_length</a>(H, V)&#160;&#160;&#160;((H)-&gt;length = (V))</td></tr>
<tr class="separator:a9f723101896941fa44ea701c4dfd3591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa02d6b65a8864468c2b8cfbe79084467"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa02d6b65a8864468c2b8cfbe79084467">dtls_get_content_type</a>(H)&#160;&#160;&#160;((H)-&gt;content_type &amp; 0xff)</td></tr>
<tr class="separator:aa02d6b65a8864468c2b8cfbe79084467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d6bcdee257de4be562aee0be9c87fb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a22d6bcdee257de4be562aee0be9c87fb">dtls_get_version</a>(H)&#160;&#160;&#160;<a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)-&gt;version)</td></tr>
<tr class="separator:a22d6bcdee257de4be562aee0be9c87fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a175d8e65080497463d13caf20e961500"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a175d8e65080497463d13caf20e961500">dtls_get_epoch</a>(H)&#160;&#160;&#160;<a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)-&gt;epoch)</td></tr>
<tr class="separator:a175d8e65080497463d13caf20e961500"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41f28f63e60a1a0b45a77d62bb5380e7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a41f28f63e60a1a0b45a77d62bb5380e7">dtls_get_sequence_number</a>(H)&#160;&#160;&#160;dtls_uint48_to_ulong((H)-&gt;sequence_number)</td></tr>
<tr class="separator:a41f28f63e60a1a0b45a77d62bb5380e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad633ed0a80e25b3884d119a8d8aeaff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aad633ed0a80e25b3884d119a8d8aeaff">dtls_get_fragment_length</a>(H)&#160;&#160;&#160;<a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>((H)-&gt;fragment_length)</td></tr>
<tr class="separator:aad633ed0a80e25b3884d119a8d8aeaff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ce6e5416f5479558116b881d3eb1ad6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0ce6e5416f5479558116b881d3eb1ad6">HASH_FIND_PEER</a>(head, sess, out)&#160;&#160;&#160;<a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),out)</td></tr>
<tr class="separator:a0ce6e5416f5479558116b881d3eb1ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf0d50c9f224c0677988f13e947e9523"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#acf0d50c9f224c0677988f13e947e9523">HASH_ADD_PEER</a>(head, sess, add)&#160;&#160;&#160;<a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),add)</td></tr>
<tr class="separator:acf0d50c9f224c0677988f13e947e9523"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0844494b0b76acb7bcf832ae74fb25c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0844494b0b76acb7bcf832ae74fb25c0">HASH_DEL_PEER</a>(head, delptr)&#160;&#160;&#160;<a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh,head,delptr)</td></tr>
<tr class="separator:a0844494b0b76acb7bcf832ae74fb25c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae97c368900c13dc7074c09e8848afa8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>)</td></tr>
<tr class="separator:ae97c368900c13dc7074c09e8848afa8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a520419d1976b301c508721faed549b4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a>&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a>)</td></tr>
<tr class="separator:a520419d1976b301c508721faed549b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affe47ee08ad0e6a54d4f0c2a7f412675"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#affe47ee08ad0e6a54d4f0c2a7f412675">DTLS_CH_LENGTH</a>&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) /* no variable length fields! */</td></tr>
<tr class="separator:affe47ee08ad0e6a54d4f0c2a7f412675"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd652cf0e4512727591d3ec8ca066ace"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:abd652cf0e4512727591d3ec8ca066ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5a4609da11d9496490853de9c2bf6fa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa5a4609da11d9496490853de9c2bf6fa">DTLS_CH_LENGTH_MAX</a>&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) + <a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a> + 12 + 26</td></tr>
<tr class="separator:aa5a4609da11d9496490853de9c2bf6fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85d3d5311baabdaa06b7824528eef4e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a>)</td></tr>
<tr class="separator:a85d3d5311baabdaa06b7824528eef4e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcca5dc5ebcc9eb8141ca0b49b647676"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afcca5dc5ebcc9eb8141ca0b49b647676">DTLS_SH_LENGTH</a>&#160;&#160;&#160;(2 + <a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a> + 1 + 2 + 1)</td></tr>
<tr class="separator:afcca5dc5ebcc9eb8141ca0b49b647676"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6570b93f9f19e6abceef85c566fe3696"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a6570b93f9f19e6abceef85c566fe3696">DTLS_CE_LENGTH</a>&#160;&#160;&#160;(3 + 3 + 27 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td></tr>
<tr class="separator:a6570b93f9f19e6abceef85c566fe3696"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9481c39cd66eac3059df28aef1e9843"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad9481c39cd66eac3059df28aef1e9843">DTLS_SKEXEC_LENGTH</a>&#160;&#160;&#160;(1 + 2 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + 2 + 70)</td></tr>
<tr class="separator:ad9481c39cd66eac3059df28aef1e9843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c0c656efcfd0e33595914171e51ae6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4c0c656efcfd0e33595914171e51ae6d">DTLS_SKEXECPSK_LENGTH_MIN</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a4c0c656efcfd0e33595914171e51ae6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a4dc9af457241380a01c8e38fdc4e2d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8a4dc9af457241380a01c8e38fdc4e2d">DTLS_SKEXECPSK_LENGTH_MAX</a>&#160;&#160;&#160;2 + <a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a></td></tr>
<tr class="separator:a8a4dc9af457241380a01c8e38fdc4e2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a674da4ca826bf1206ec8053f4c9eb336"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a674da4ca826bf1206ec8053f4c9eb336">DTLS_CKXPSK_LENGTH_MIN</a>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a674da4ca826bf1206ec8053f4c9eb336"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ddccf12706c8d18d80b7759454ca164"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a5ddccf12706c8d18d80b7759454ca164">DTLS_CKXEC_LENGTH</a>&#160;&#160;&#160;(1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td></tr>
<tr class="separator:a5ddccf12706c8d18d80b7759454ca164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0bcce8fa79dc3187eb5f1655798ac816"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0bcce8fa79dc3187eb5f1655798ac816">DTLS_CV_LENGTH</a>&#160;&#160;&#160;(1 + 1 + 2 + 1 + 1 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td></tr>
<tr class="separator:a0bcce8fa79dc3187eb5f1655798ac816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21644ea2de742395df1e3b3281ba4f63"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a21644ea2de742395df1e3b3281ba4f63">DTLS_FIN_LENGTH</a>&#160;&#160;&#160;12</td></tr>
<tr class="separator:a21644ea2de742395df1e3b3281ba4f63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76388c15f1b77d3c5b9d8068e8c0a087"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a>&#160;&#160;&#160;<a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + <a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a></td></tr>
<tr class="separator:a76388c15f1b77d3c5b9d8068e8c0a087"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07a808dc78df3141fe5caba2a3e2226b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a07a808dc78df3141fe5caba2a3e2226b">HV_HDR_LENGTH</a>&#160;&#160;&#160;<a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a> + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a></td></tr>
<tr class="separator:a07a808dc78df3141fe5caba2a3e2226b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5a8f0d3793bb3b194ca364b596ab01d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa5a8f0d3793bb3b194ca364b596ab01d">HIGH</a>(V)&#160;&#160;&#160;(((V) &gt;&gt; 8) &amp; 0xff)</td></tr>
<tr class="separator:aa5a8f0d3793bb3b194ca364b596ab01d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69edf0296cf64026686d4ff4424d4e8f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a69edf0296cf64026686d4ff4424d4e8f">LOW</a>(V)&#160;&#160;&#160;((V) &amp; 0xff)</td></tr>
<tr class="separator:a69edf0296cf64026686d4ff4424d4e8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35d050593196252c1826ac2e82cbac0b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a35d050593196252c1826ac2e82cbac0b">DTLS_RECORD_HEADER</a>(M)&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a> *)(M))</td></tr>
<tr class="separator:a35d050593196252c1826ac2e82cbac0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cc930733d35ea870c7a0a131bee0d7a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a2cc930733d35ea870c7a0a131bee0d7a">DTLS_HANDSHAKE_HEADER</a>(M)&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)(M))</td></tr>
<tr class="separator:a2cc930733d35ea870c7a0a131bee0d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a354c84e6c783c5d0cdbf905c27e77dc4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a354c84e6c783c5d0cdbf905c27e77dc4">HANDSHAKE</a>(M)&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)((M) + <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>))</td></tr>
<tr class="separator:a354c84e6c783c5d0cdbf905c27e77dc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0800e26c09602d197e929fcc8ba783d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a0800e26c09602d197e929fcc8ba783d5">CLIENTHELLO</a>(M)&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a> *)((M) + <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a>))</td></tr>
<tr class="separator:a0800e26c09602d197e929fcc8ba783d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09a0896d586ff27855ced6930cc17023"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a09a0896d586ff27855ced6930cc17023">SKIP_VAR_FIELD</a>(P, L, T)</td></tr>
<tr class="separator:a09a0896d586ff27855ced6930cc17023"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abac8adda40bcb694e059e38f6ac115f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(Label)&#160;&#160;&#160;prf_label_##Label</td></tr>
<tr class="separator:abac8adda40bcb694e059e38f6ac115f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b260e812e69f1dae18497d167770a9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a83b260e812e69f1dae18497d167770a9">PRF_LABEL_SIZE</a>(Label)&#160;&#160;&#160;(sizeof(<a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(Label)) - 1)</td></tr>
<tr class="separator:a83b260e812e69f1dae18497d167770a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e132aba78de736930255d40ef3f2d34"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3e132aba78de736930255d40ef3f2d34">CALL</a>(Context, which,...)</td></tr>
<tr class="separator:a3e132aba78de736930255d40ef3f2d34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>&#160;&#160;&#160;13</td></tr>
<tr class="separator:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9279d8f0e7c7b30f968ed085b5a3136f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9279d8f0e7c7b30f968ed085b5a3136f">MUST_HASH</a>(Type, Data, Length)</td></tr>
<tr class="separator:a9279d8f0e7c7b30f968ed085b5a3136f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97496e1be0f2fe54873b35ee8bf0d462"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a97496e1be0f2fe54873b35ee8bf0d462">mycookie</a>&#160;&#160;&#160;(buf + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>)</td></tr>
<tr class="separator:a97496e1be0f2fe54873b35ee8bf0d462"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7a17e13b17da97cbef046b20cd7280f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a>&#160;&#160;&#160;(1 + 1 + 2 + 1 + 1 + 1 + 1)</td></tr>
<tr class="separator:ab7a17e13b17da97cbef046b20cd7280f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cf5795397ac5779f281543fc0f44ae9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a2cf5795397ac5779f281543fc0f44ae9">S_KEY_OFFSET</a>(len_s)&#160;&#160;&#160;(<a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a> + (len_s) + 1 + 1)</td></tr>
<tr class="separator:a2cf5795397ac5779f281543fc0f44ae9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aee0f4f3d8541ea6ab9c204761cc6082e">A_DATA_LEN</a>&#160;&#160;&#160;13</td></tr>
<tr class="separator:aee0f4f3d8541ea6ab9c204761cc6082e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a9e02f1c6e70dab40e56d5131a259521a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9e02f1c6e70dab40e56d5131a259521a">malloc_context</a> ()</td></tr>
<tr class="separator:a9e02f1c6e70dab40e56d5131a259521a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2f1fb16f297640b319ff0d864139ea5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa2f1fb16f297640b319ff0d864139ea5">free_context</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context)</td></tr>
<tr class="separator:aa2f1fb16f297640b319ff0d864139ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac203466e393ac9030d405c8f0496e9cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ac203466e393ac9030d405c8f0496e9cd">dtls_init</a> ()</td></tr>
<tr class="separator:ac203466e393ac9030d405c8f0496e9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa89745c0af073102c9c350d28a84214d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa89745c0af073102c9c350d28a84214d">dtls_send_multi</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security, <a class="el" href="structsession__t.html">session_t</a> *session, unsigned char type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf_array[], size_t buf_len_array[], size_t buf_array_len)</td></tr>
<tr class="separator:aa89745c0af073102c9c350d28a84214d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdd0d094bfd136f65455e23fda087cd6"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, unsigned char type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t buflen)</td></tr>
<tr class="separator:afdd0d094bfd136f65455e23fda087cd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3742f5067d1b0693d6a41e70d4ecd5b5"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3742f5067d1b0693d6a41e70d4ecd5b5">dtls_stop_retransmission</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:a3742f5067d1b0693d6a41e70d4ecd5b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70333bea2db35153177347b5c7700cab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a70333bea2db35153177347b5c7700cab">dtls_get_peer</a> (const <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *session)</td></tr>
<tr class="separator:a70333bea2db35153177347b5c7700cab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4a2961a027959f907145f82ca9107c3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae4a2961a027959f907145f82ca9107c3">dtls_add_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:ae4a2961a027959f907145f82ca9107c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e338587fb19c794c8d19bc2801f2eb2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a1e338587fb19c794c8d19bc2801f2eb2">dtls_write</a> (struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *dst, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf, size_t len)</td></tr>
<tr class="separator:a1e338587fb19c794c8d19bc2801f2eb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8546683053c19be38b23aa9042139f4b"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8546683053c19be38b23aa9042139f4b">dtls_get_cookie</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, size_t msglen, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **cookie)</td></tr>
<tr class="separator:a8546683053c19be38b23aa9042139f4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45841106ebcb5b1373c0312842b90943"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a45841106ebcb5b1373c0312842b90943">dtls_create_cookie</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, size_t msglen, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *cookie, int *clen)</td></tr>
<tr class="separator:a45841106ebcb5b1373c0312842b90943"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaafa285eb634873480c0ff429edd8064"><td class="memItemLeft" align="right" valign="top">static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aaafa285eb634873480c0ff429edd8064">is_record</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, size_t msglen)</td></tr>
<tr class="separator:aaafa285eb634873480c0ff429edd8064"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a734cf32b1c8b99e21d57006da24fd808"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a734cf32b1c8b99e21d57006da24fd808">dtls_set_record_header</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> type, <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf)</td></tr>
<tr class="separator:a734cf32b1c8b99e21d57006da24fd808"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab43d3a34ddaf0f5bfaa2b0b3e76e25d1">dtls_set_handshake_header</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> type, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, int length, int frag_offset, int frag_length, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf)</td></tr>
<tr class="separator:ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8098a728e5fff33ceeb7f57ebd48a212"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8098a728e5fff33ceeb7f57ebd48a212">is_tls_ecdhe_ecdsa_with_aes_128_ccm_8</a> (<a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> cipher)</td></tr>
<tr class="separator:a8098a728e5fff33ceeb7f57ebd48a212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8bb6e8bb947b943d2af4c1886a8e72ba"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a8bb6e8bb947b943d2af4c1886a8e72ba">is_tls_psk_with_aes_128_ccm_8</a> (<a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> cipher)</td></tr>
<tr class="separator:a8bb6e8bb947b943d2af4c1886a8e72ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bbccb275cb23e84c0a148a157955770"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3bbccb275cb23e84c0a148a157955770">is_psk_supported</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
<tr class="separator:a3bbccb275cb23e84c0a148a157955770"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb41f4bb9b8e4218ef5115ce70ebdc21"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abb41f4bb9b8e4218ef5115ce70ebdc21">is_ecdsa_supported</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, int is_client)</td></tr>
<tr class="separator:abb41f4bb9b8e4218ef5115ce70ebdc21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599f0d6e9134869e55b64c4f8720ebfa"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a599f0d6e9134869e55b64c4f8720ebfa">is_ecdsa_client_auth_supported</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
<tr class="separator:a599f0d6e9134869e55b64c4f8720ebfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37965d10b44a63ea6adbf28b9dc79b75"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a37965d10b44a63ea6adbf28b9dc79b75">known_cipher</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a> code, int is_client)</td></tr>
<tr class="separator:a37965d10b44a63ea6adbf28b9dc79b75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b3eda5556d76e045b42b93055944ddd"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4b3eda5556d76e045b42b93055944ddd">dtls_debug_keyblock</a> (<a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *config)</td></tr>
<tr class="separator:a4b3eda5556d76e045b42b93055944ddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00707f0f82235a2432338e77dae0911d"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a00707f0f82235a2432338e77dae0911d">dtls_handshake_type_to_name</a> (int type)</td></tr>
<tr class="separator:a00707f0f82235a2432338e77dae0911d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94199c9fa65db19e0f761e3ff973eb4b"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a94199c9fa65db19e0f761e3ff973eb4b">calculate_key_block</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role)</td></tr>
<tr class="separator:a94199c9fa65db19e0f761e3ff973eb4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad699a00b7ff5a71fa5b7fbc79a4dd9a8"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad699a00b7ff5a71fa5b7fbc79a4dd9a8">verify_ext_eliptic_curves</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:ad699a00b7ff5a71fa5b7fbc79a4dd9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af073bf7cefa5e49e0c939e853678d417"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#af073bf7cefa5e49e0c939e853678d417">verify_ext_cert_type</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:af073bf7cefa5e49e0c939e853678d417"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04a3580764ffd4f253ce6be858806c95"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a04a3580764ffd4f253ce6be858806c95">verify_ext_ec_point_formats</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a04a3580764ffd4f253ce6be858806c95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8c8390d0a1592207c4ea6dd0a623a9a"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad8c8390d0a1592207c4ea6dd0a623a9a">dtls_check_tls_extension</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length, int client_hello)</td></tr>
<tr class="separator:ad8c8390d0a1592207c4ea6dd0a623a9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63f2c7e75b86bb2839b8fedf3fa9c93d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a63f2c7e75b86bb2839b8fedf3fa9c93d">dtls_update_parameters</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a63f2c7e75b86bb2839b8fedf3fa9c93d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9251eac8015afc7985ff4398657ea3f"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab9251eac8015afc7985ff4398657ea3f">check_client_keyexchange</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *handshake, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t length)</td></tr>
<tr class="separator:ab9251eac8015afc7985ff4398657ea3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db09acb5894f17f4745d7556555bea7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3db09acb5894f17f4745d7556555bea7">update_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t length)</td></tr>
<tr class="separator:a3db09acb5894f17f4745d7556555bea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22ab7a79391c2204337237949d69dad8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a22ab7a79391c2204337237949d69dad8">copy_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> *hs_hash)</td></tr>
<tr class="separator:a22ab7a79391c2204337237949d69dad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb41bf916dc34af5cd79003a9243b727"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#adb41bf916dc34af5cd79003a9243b727">finalize_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *buf)</td></tr>
<tr class="separator:adb41bf916dc34af5cd79003a9243b727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82181208ec1e9f42896f0606e0036c1d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a82181208ec1e9f42896f0606e0036c1d">clear_hs_hash</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:a82181208ec1e9f42896f0606e0036c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91b2653747ca1e4058ae3b350019188b"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a91b2653747ca1e4058ae3b350019188b">check_finished</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a91b2653747ca1e4058ae3b350019188b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9733484b9a23775b1bc8b3d723282e5"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab9733484b9a23775b1bc8b3d723282e5">dtls_prepare_record</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *security, unsigned char type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data_array[], size_t data_len_array[], size_t data_array_len, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *sendbuf, size_t *rlen)</td></tr>
<tr class="separator:ab9733484b9a23775b1bc8b3d723282e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f06884f659f6a5120be7e0b86d29880"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4f06884f659f6a5120be7e0b86d29880">dtls_send_handshake_msg_hash</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> header_type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length, int add_hash)</td></tr>
<tr class="separator:a4f06884f659f6a5120be7e0b86d29880"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a872c53139e76cab7ec387cc54ae1a11b"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a872c53139e76cab7ec387cc54ae1a11b">dtls_send_handshake_msg</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> header_type, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a872c53139e76cab7ec387cc54ae1a11b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aac4fa55afe2d19342136acaaaf9641"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4aac4fa55afe2d19342136acaaaf9641">dtls_send_alert</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a> level, <a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a> description)</td></tr>
<tr class="separator:a4aac4fa55afe2d19342136acaaaf9641"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa90f5eb6954137d5e098e29143c2586a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa90f5eb6954137d5e098e29143c2586a">dtls_close</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *remote)</td></tr>
<tr class="separator:aa90f5eb6954137d5e098e29143c2586a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81061928e291b6a3e7701f6a7f51b6f3"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a81061928e291b6a3e7701f6a7f51b6f3">dtls_destroy_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, int unlink)</td></tr>
<tr class="separator:a81061928e291b6a3e7701f6a7f51b6f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a604f68a801e55b884f7f7f1d2f1b9c9f"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a604f68a801e55b884f7f7f1d2f1b9c9f">dtls_verify_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a604f68a801e55b884f7f7f1d2f1b9c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8409ba213cb87dbf9ed16ef87995c54"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#af8409ba213cb87dbf9ed16ef87995c54">dtls_check_ecdsa_signature_elem</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length, unsigned char **result_r, unsigned char **result_s)</td></tr>
<tr class="separator:af8409ba213cb87dbf9ed16ef87995c54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a017195b30506fbdf32fff55af9276a02"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a017195b30506fbdf32fff55af9276a02">check_client_certificate_verify</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a017195b30506fbdf32fff55af9276a02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7730a402edfca00c35bc1c7c09eb2fb9"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a7730a402edfca00c35bc1c7c09eb2fb9">dtls_send_server_hello</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:a7730a402edfca00c35bc1c7c09eb2fb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b92c487825aa888acc0b55f5adc0220"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a6b92c487825aa888acc0b55f5adc0220">dtls_send_certificate_ecdsa</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</td></tr>
<tr class="separator:a6b92c487825aa888acc0b55f5adc0220"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d7af4d19c7abef4583c1667ec449a5d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a7d7af4d19c7abef4583c1667ec449a5d">dtls_add_ecdsa_signature_elem</a> (<a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *p, uint32_t *point_r, uint32_t *point_s)</td></tr>
<tr class="separator:a7d7af4d19c7abef4583c1667ec449a5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80275f06c14cbbc18095bc2f61022d15"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a80275f06c14cbbc18095bc2f61022d15">dtls_send_server_key_exchange_ecdh</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</td></tr>
<tr class="separator:a80275f06c14cbbc18095bc2f61022d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00f6591bce49f6122dab9827c8774ba3"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a00f6591bce49f6122dab9827c8774ba3">dtls_send_server_key_exchange_psk</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const unsigned char *psk_hint, size_t len)</td></tr>
<tr class="separator:a00f6591bce49f6122dab9827c8774ba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51ab17e2a5ac1566ba4249b787bb98a3"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a51ab17e2a5ac1566ba4249b787bb98a3">dtls_send_server_certificate_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:a51ab17e2a5ac1566ba4249b787bb98a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6ebff8518bb1d53ba888baf6898ee21"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad6ebff8518bb1d53ba888baf6898ee21">dtls_send_server_hello_done</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:ad6ebff8518bb1d53ba888baf6898ee21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc54bc2ed42b4b65ad8f01abca9a8772"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afc54bc2ed42b4b65ad8f01abca9a8772">dtls_send_server_hello_msgs</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:afc54bc2ed42b4b65ad8f01abca9a8772"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfb3c9e63f378d0d8e3d3d0c60537a5"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a9cfb3c9e63f378d0d8e3d3d0c60537a5">dtls_send_ccs</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:a9cfb3c9e63f378d0d8e3d3d0c60537a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12e4cab07baba9eae2a0182f4e0bf72d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a12e4cab07baba9eae2a0182f4e0bf72d">dtls_send_client_key_exchange</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:a12e4cab07baba9eae2a0182f4e0bf72d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfe6fc0d0d66e9ffaef25c2c126b1c34"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#adfe6fc0d0d66e9ffaef25c2c126b1c34">dtls_send_certificate_verify_ecdh</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *key)</td></tr>
<tr class="separator:adfe6fc0d0d66e9ffaef25c2c126b1c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a112e0d83a0e576b5d22df60241900a67"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a112e0d83a0e576b5d22df60241900a67">dtls_send_finished</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, const unsigned char *label, size_t labellen)</td></tr>
<tr class="separator:a112e0d83a0e576b5d22df60241900a67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecd3ffe8bf8a3970d3e091ce8e7c6476"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aecd3ffe8bf8a3970d3e091ce8e7c6476">dtls_send_client_hello</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> cookie[], size_t cookie_length)</td></tr>
<tr class="separator:aecd3ffe8bf8a3970d3e091ce8e7c6476"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcc64c0abfd9b157b71a47e5a5a78b26"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#afcc64c0abfd9b157b71a47e5a5a78b26">check_server_hello</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:afcc64c0abfd9b157b71a47e5a5a78b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b598b29d3148bfc02e826d94bbc0642"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a2b598b29d3148bfc02e826d94bbc0642">check_server_hello_verify_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a2b598b29d3148bfc02e826d94bbc0642"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88db0e7ffa0836761bef7b62ac3d2fb7"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a88db0e7ffa0836761bef7b62ac3d2fb7">check_server_certificate</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a88db0e7ffa0836761bef7b62ac3d2fb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3de5b3956733293d3e19d83d3cc8d9bb"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3de5b3956733293d3e19d83d3cc8d9bb">check_server_key_exchange_ecdsa</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a3de5b3956733293d3e19d83d3cc8d9bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a915dccbe7e71d52d2650378f3aaad054"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a915dccbe7e71d52d2650378f3aaad054">check_server_key_exchange_psk</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a915dccbe7e71d52d2650378f3aaad054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61ddc44bfdb8a92b72911a402aa0164e"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a61ddc44bfdb8a92b72911a402aa0164e">check_certificate_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a61ddc44bfdb8a92b72911a402aa0164e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca393c29148080d4dfa343c8ec283928"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aca393c29148080d4dfa343c8ec283928">check_server_hellodone</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:aca393c29148080d4dfa343c8ec283928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc4e7aa5066240a362341bbdb998bc71"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#adc4e7aa5066240a362341bbdb998bc71">decrypt_verify</a> (<a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *packet, size_t length, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **cleartext)</td></tr>
<tr class="separator:adc4e7aa5066240a362341bbdb998bc71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3af0ee4375c0da833aacec49c6fd8ad"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab3af0ee4375c0da833aacec49c6fd8ad">dtls_send_hello_request</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:ab3af0ee4375c0da833aacec49c6fd8ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5676a0ceeeabd1ec38d378212f7af4a1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a5676a0ceeeabd1ec38d378212f7af4a1">dtls_renegotiate</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *dst)</td></tr>
<tr class="separator:a5676a0ceeeabd1ec38d378212f7af4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24e7d6ad9fc0d87b7285615123bdd43d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a24e7d6ad9fc0d87b7285615123bdd43d">handle_handshake_msg</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role, const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a24e7d6ad9fc0d87b7285615123bdd43d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab199f50f39a96464ff7b532f2635ce9d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab199f50f39a96464ff7b532f2635ce9d">handle_handshake</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a> role, const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a> state, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:ab199f50f39a96464ff7b532f2635ce9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d7a16c9d0cd28666a2cc8ec471aa664"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4d7a16c9d0cd28666a2cc8ec471aa664">handle_ccs</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *record_header, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a4d7a16c9d0cd28666a2cc8ec471aa664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a445994c602b105608f277c6fc066301d"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a445994c602b105608f277c6fc066301d">handle_alert</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *record_header, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *data, size_t data_length)</td></tr>
<tr class="separator:a445994c602b105608f277c6fc066301d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c7a26bc520ac2ac88b4758e0fb84f1e"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a4c7a26bc520ac2ac88b4758e0fb84f1e">dtls_alert_send_from_err</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer, <a class="el" href="structsession__t.html">session_t</a> *session, int err)</td></tr>
<tr class="separator:a4c7a26bc520ac2ac88b4758e0fb84f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae272fea7269714fe7a67d6da64961731"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae272fea7269714fe7a67d6da64961731">dtls_handle_message</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structsession__t.html">session_t</a> *session, <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *msg, int msglen)</td></tr>
<tr class="separator:ae272fea7269714fe7a67d6da64961731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11f53d301448aa8f1dbcfaf77441bd9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a11f53d301448aa8f1dbcfaf77441bd9c">dtls_new_context</a> (void *app_data)</td></tr>
<tr class="separator:a11f53d301448aa8f1dbcfaf77441bd9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3171c099d25ed29e31326526b8e1de84"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx)</td></tr>
<tr class="separator:a3171c099d25ed29e31326526b8e1de84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad60bf1197fa1a074f91aed508cfefa62"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ad60bf1197fa1a074f91aed508cfefa62">dtls_connect_peer</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, <a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *peer)</td></tr>
<tr class="separator:ad60bf1197fa1a074f91aed508cfefa62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a187f5e145bb869a732fbed426929a4e9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a187f5e145bb869a732fbed426929a4e9">dtls_connect</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *ctx, const <a class="el" href="structsession__t.html">session_t</a> *dst)</td></tr>
<tr class="separator:a187f5e145bb869a732fbed426929a4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa57a9ccb1344c5baf8bd3adf35f3beeb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aa57a9ccb1344c5baf8bd3adf35f3beeb">dtls_retransmit</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="structnetq__t.html">netq_t</a> *node)</td></tr>
<tr class="separator:aa57a9ccb1344c5baf8bd3adf35f3beeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab50d1ee589e91d07032d0a65768dee82"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ab50d1ee589e91d07032d0a65768dee82">dtls_check_retransmit</a> (<a class="el" href="structdtls__context__t.html">dtls_context_t</a> *context, <a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> *next)</td></tr>
<tr class="separator:ab50d1ee589e91d07032d0a65768dee82"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a784ec579660900e758a9b7de84150c9b"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a784ec579660900e758a9b7de84150c9b">prf_label_master</a> [] = &quot;master secret&quot;</td></tr>
<tr class="separator:a784ec579660900e758a9b7de84150c9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42886cd9a1fd728f47ea40d38dfabcda"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a42886cd9a1fd728f47ea40d38dfabcda">prf_label_key</a> [] = &quot;key expansion&quot;</td></tr>
<tr class="separator:a42886cd9a1fd728f47ea40d38dfabcda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abba2a2562813493d98b5671a4c5c082b"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#abba2a2562813493d98b5671a4c5c082b">prf_label_client</a> [] = &quot;client&quot;</td></tr>
<tr class="separator:abba2a2562813493d98b5671a4c5c082b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacf8643991dec574dcb09a280357ae4f"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aacf8643991dec574dcb09a280357ae4f">prf_label_server</a> [] = &quot;server&quot;</td></tr>
<tr class="separator:aacf8643991dec574dcb09a280357ae4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45d793d73836bf96dacb1d558f81b6c7"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#a45d793d73836bf96dacb1d558f81b6c7">prf_label_finished</a> [] = &quot; finished&quot;</td></tr>
<tr class="separator:a45d793d73836bf96dacb1d558f81b6c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecdb18ea2b899994542ec46b23528738"><td class="memItemLeft" align="right" valign="top">static const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#aecdb18ea2b899994542ec46b23528738">cert_asn1_header</a> []</td></tr>
<tr class="separator:aecdb18ea2b899994542ec46b23528738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae35671d94ccea5f335546ce409aed601"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dtls_8c.html#ae35671d94ccea5f335546ce409aed601">compression_methods</a> []</td></tr>
<tr class="separator:ae35671d94ccea5f335546ce409aed601"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="aee0f4f3d8541ea6ab9c204761cc6082e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define A_DATA_LEN&#160;&#160;&#160;13</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aee0f4f3d8541ea6ab9c204761cc6082e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define A_DATA_LEN&#160;&#160;&#160;13</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a3e132aba78de736930255d40ef3f2d34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CALL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Context, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">which, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((Context)-&gt;h &amp;&amp; (Context)-&gt;h-&gt;which                    \</div>
<div class="line">   ? (Context)-&gt;h-&gt;which((Context), ##__VA_ARGS__)          \</div>
<div class="line">   : -1)</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="dtls_8c_source.html#l00174">174</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0800e26c09602d197e929fcc8ba783d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CLIENTHELLO</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">M</td><td>)</td>
          <td>&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a> *)((M) + <a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a>))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00099">99</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a6570b93f9f19e6abceef85c566fe3696"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_CE_LENGTH&#160;&#160;&#160;(3 + 3 + 27 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00080">80</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="affe47ee08ad0e6a54d4f0c2a7f412675"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_CH_LENGTH&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) /* no variable length fields! */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00075">75</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa5a4609da11d9496490853de9c2bf6fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_CH_LENGTH_MAX&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#aa9ebc35a08295c2ae09d4248ba8e6456">dtls_client_hello_t</a>) + <a class="el" href="dtls_8c.html#abd652cf0e4512727591d3ec8ca066ace">DTLS_COOKIE_LENGTH_MAX</a> + 12 + 26</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00077">77</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5ddccf12706c8d18d80b7759454ca164"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_CKXEC_LENGTH&#160;&#160;&#160;(1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00085">85</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a674da4ca826bf1206ec8053f4c9eb336"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_CKXPSK_LENGTH_MIN&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00084">84</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="abd652cf0e4512727591d3ec8ca066ace"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_COOKIE_LENGTH_MAX&#160;&#160;&#160;32</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00076">76</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0bcce8fa79dc3187eb5f1655798ac816"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_CV_LENGTH&#160;&#160;&#160;(1 + 1 + 2 + 1 + 1 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00086">86</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a21644ea2de742395df1e3b3281ba4f63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_FIN_LENGTH&#160;&#160;&#160;12</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00087">87</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa02d6b65a8864468c2b8cfbe79084467"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_get_content_type</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H</td><td>)</td>
          <td>&#160;&#160;&#160;((H)-&gt;content_type &amp; 0xff)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00058">58</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a175d8e65080497463d13caf20e961500"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_get_epoch</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)-&gt;epoch)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00060">60</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aad633ed0a80e25b3884d119a8d8aeaff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_get_fragment_length</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="numeric_8h.html#a238931e9197ce422acfba569deb2af71">dtls_uint24_to_int</a>((H)-&gt;fragment_length)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00062">62</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a41f28f63e60a1a0b45a77d62bb5380e7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_get_sequence_number</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H</td><td>)</td>
          <td>&#160;&#160;&#160;dtls_uint48_to_ulong((H)-&gt;sequence_number)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00061">61</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a22d6bcdee257de4be562aee0be9c87fb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_get_version</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="numeric_8h.html#ae32dd0743658f1aa5a723d5a8357521f">dtls_uint16_to_int</a>((H)-&gt;version)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00059">59</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a2cc930733d35ea870c7a0a131bee0d7a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_HANDSHAKE_HEADER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">M</td><td>)</td>
          <td>&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)(M))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00096">96</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a520419d1976b301c508721faed549b4f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_HS_LENGTH&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00074">74</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a85d3d5311baabdaa06b7824528eef4e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_HV_LENGTH&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#abd61d526ef995e63a6debfd8ddda9e98">dtls_hello_verify_t</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00078">78</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a35d050593196252c1826ac2e82cbac0b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_RECORD_HEADER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">M</td><td>)</td>
          <td>&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a> *)(M))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00095">95</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae97c368900c13dc7074c09e8848afa8f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_RH_LENGTH&#160;&#160;&#160;sizeof(<a class="el" href="dtls_8h.html#a81936df7abb2c16aa897e3018aa24399">dtls_record_header_t</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00073">73</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a8e0ab8b3ce70468c29820cafe96cd365"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_set_content_type</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">V&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((H)-&gt;content_type = (V) &amp; 0xff)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00055">55</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9f723101896941fa44ea701c4dfd3591"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_set_length</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">V&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((H)-&gt;length = (V))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00056">56</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aebefc949b2298e7de7b95b715874d407"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define dtls_set_version</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">H, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">V&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="numeric_8h.html#a074d352855e1ffde4c2ddb6a6fea01b9">dtls_int_to_uint16</a>((H)-&gt;version, (V))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00054">54</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="afcca5dc5ebcc9eb8141ca0b49b647676"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_SH_LENGTH&#160;&#160;&#160;(2 + <a class="el" href="crypto_8h.html#a5a0bdff7c0889f35601b4935098508a0">DTLS_RANDOM_LENGTH</a> + 1 + 2 + 1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00079">79</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ad9481c39cd66eac3059df28aef1e9843"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_SKEXEC_LENGTH&#160;&#160;&#160;(1 + 2 + 1 + 1 + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + <a class="el" href="crypto_8h.html#a9b039263057e157e1427c5d316133c3d">DTLS_EC_KEY_SIZE</a> + 1 + 1 + 2 + 70)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00081">81</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a8a4dc9af457241380a01c8e38fdc4e2d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_SKEXECPSK_LENGTH_MAX&#160;&#160;&#160;2 + <a class="el" href="crypto_8h.html#ab96c8e0773a14d1ce1621eed1a78e2bd">DTLS_PSK_MAX_CLIENT_IDENTITY_LEN</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00083">83</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4c0c656efcfd0e33595914171e51ae6d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define DTLS_SKEXECPSK_LENGTH_MIN&#160;&#160;&#160;2</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00082">82</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a354c84e6c783c5d0cdbf905c27e77dc4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HANDSHAKE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">M</td><td>)</td>
          <td>&#160;&#160;&#160;((<a class="el" href="dtls_8h.html#a5c6625ffcf61189392768253e8919a45">dtls_handshake_header_t</a> *)((M) + <a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a>))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00098">98</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="acf0d50c9f224c0677988f13e947e9523"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_ADD_PEER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">sess, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">add&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="uthash_8h.html#aaf01358e257c8d838eb5e4b189f0c399">HASH_ADD</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),add)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00067">67</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0844494b0b76acb7bcf832ae74fb25c0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_DEL_PEER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">delptr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="uthash_8h.html#a3f83117e1108d63844a58d2d79c3b980">HASH_DELETE</a>(hh,head,delptr)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00069">69</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0ce6e5416f5479558116b881d3eb1ad6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HASH_FIND_PEER</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">head, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">sess, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">out&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="uthash_8h.html#ad4a1cd39c3044936c0e49d3f372c9dbf">HASH_FIND</a>(hh,head,sess,sizeof(<a class="el" href="structsession__t.html">session_t</a>),out)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00065">65</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa5a8f0d3793bb3b194ca364b596ab01d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HIGH</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">V</td><td>)</td>
          <td>&#160;&#160;&#160;(((V) &gt;&gt; 8) &amp; 0xff)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00092">92</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a76388c15f1b77d3c5b9d8068e8c0a087"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HS_HDR_LENGTH&#160;&#160;&#160;<a class="el" href="dtls_8c.html#ae97c368900c13dc7074c09e8848afa8f">DTLS_RH_LENGTH</a> + <a class="el" href="dtls_8c.html#a520419d1976b301c508721faed549b4f">DTLS_HS_LENGTH</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00089">89</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a07a808dc78df3141fe5caba2a3e2226b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define HV_HDR_LENGTH&#160;&#160;&#160;<a class="el" href="dtls_8c.html#a76388c15f1b77d3c5b9d8068e8c0a087">HS_HDR_LENGTH</a> + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00090">90</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a69edf0296cf64026686d4ff4424d4e8f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LOW</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">V</td><td>)</td>
          <td>&#160;&#160;&#160;((V) &amp; 0xff)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00093">93</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9279d8f0e7c7b30f968ed085b5a3136f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MUST_HASH</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Type, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Data, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Length&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns true if the message <code>Data</code> is a handshake message that must be included in the calculation of verify_data in the Finished message.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Type</td><td>The message type. Only handshake messages but the initial Client Hello and Hello Verify Request are included in the hash, </td></tr>
    <tr><td class="paramname">Data</td><td>The PDU to examine. </td></tr>
    <tr><td class="paramname">Length</td><td>The length of <code>Data</code>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> if <code>Data</code> must be included in hash, <code>0</code> otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01384">1384</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a97496e1be0f2fe54873b35ee8bf0d462"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define mycookie&#160;&#160;&#160;(buf + <a class="el" href="dtls_8c.html#a85d3d5311baabdaa06b7824528eef4e5">DTLS_HV_LENGTH</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="abac8adda40bcb694e059e38f6ac115f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PRF_LABEL</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Label</td><td>)</td>
          <td>&#160;&#160;&#160;prf_label_##Label</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00114">114</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a83b260e812e69f1dae18497d167770a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PRF_LABEL_SIZE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Label</td><td>)</td>
          <td>&#160;&#160;&#160;(sizeof(<a class="el" href="dtls_8c.html#abac8adda40bcb694e059e38f6ac115f9">PRF_LABEL</a>(Label)) - 1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00115">115</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab7a17e13b17da97cbef046b20cd7280f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define R_KEY_OFFSET&#160;&#160;&#160;(1 + 1 + 2 + 1 + 1 + 1 + 1)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a2cf5795397ac5779f281543fc0f44ae9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define S_KEY_OFFSET</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">len_s</td><td>)</td>
          <td>&#160;&#160;&#160;(<a class="el" href="dtls_8c.html#ab7a17e13b17da97cbef046b20cd7280f">R_KEY_OFFSET</a> + (len_s) + 1 + 1)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a09a0896d586ff27855ced6930cc17023"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SKIP_VAR_FIELD</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">P, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">L, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">T&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{                       \</div>
<div class="line">    if (L &lt; dtls_ ## T ## _to_int(P) + <span class="keyword">sizeof</span>(T))           \</div>
<div class="line">      goto error;                           \</div>
<div class="line">    L -= dtls_ ## T ## _to_int(P) + <span class="keyword">sizeof</span>(T);              \</div>
<div class="line">    P += dtls_ ## T ## _to_int(P) + <span class="keyword">sizeof</span>(T);              \</div>
<div class="line">  }</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="dtls_8c_source.html#l00106">106</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a94199c9fa65db19e0f761e3ff973eb4b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int calculate_key_block </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *&#160;</td>
          <td class="paramname"><em>handshake</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a>&#160;</td>
          <td class="paramname"><em>role</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate the pre master secret and after that calculate the master-secret. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00599">599</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a61ddc44bfdb8a92b72911a402aa0164e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_certificate_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02726">2726</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a017195b30506fbdf32fff55af9276a02"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_client_certificate_verify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01691">1691</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab9251eac8015afc7985ff4398657ea3f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_client_keyexchange </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__handshake__parameters__t.html">dtls_handshake_parameters_t</a> *&#160;</td>
          <td class="paramname"><em>handshake</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Parse the ClientKeyExchange and update the internal handshake state with the new data. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01005">1005</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a91b2653747ca1e4058ae3b350019188b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_finished </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Checks if <code>record</code> + <code>data</code> contain a Finished message with valid verify_data.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The current DTLS context. </td></tr>
    <tr><td class="paramname">peer</td><td>The remote peer of the security association. </td></tr>
    <tr><td class="paramname">data</td><td>The cleartext payload of the message. </td></tr>
    <tr><td class="paramname">data_length</td><td>Actual length of <code>data</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>0</code> if the Finished message is valid, <code>negative</code> number otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01104">1104</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a88db0e7ffa0836761bef7b62ac3d2fb7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_server_certificate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02552">2552</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="afcc64c0abfd9b157b71a47e5a5a78b26"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_server_hello </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02460">2460</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a2b598b29d3148bfc02e826d94bbc0642"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_server_hello_verify_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02530">2530</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aca393c29148080d4dfa343c8ec283928"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_server_hellodone </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02804">2804</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3de5b3956733293d3e19d83d3cc8d9bb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_server_key_exchange_ecdsa </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02604">2604</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a915dccbe7e71d52d2650378f3aaad054"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int check_server_key_exchange_psk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02687">2687</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a82181208ec1e9f42896f0606e0036c1d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void clear_hs_hash </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01087">1087</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a22ab7a79391c2204337237949d69dad8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void copy_hs_hash </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="hmac_8h.html#abb19650a510c73117da0e9b88d68f159">dtls_hash_ctx</a> *&#160;</td>
          <td class="paramname"><em>hs_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01076">1076</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="adc4e7aa5066240a362341bbdb998bc71"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int decrypt_verify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>packet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **&#160;</td>
          <td class="paramname"><em>cleartext</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>length of additional_data for the AEAD cipher which consists of seq_num(2+6) + type(1) + version(2) + length(2)</p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02877">2877</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a7d7af4d19c7abef4583c1667ec449a5d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>* dtls_add_ecdsa_signature_elem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>point_r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>point_s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01867">1867</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae4a2961a027959f907145f82ca9107c3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void dtls_add_peer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00227">227</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4c7a26bc520ac2ac88b4758e0fb84f1e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_alert_send_from_err </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03559">3559</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="af8409ba213cb87dbf9ed16ef87995c54"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_check_ecdsa_signature_elem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char **&#160;</td>
          <td class="paramname"><em>result_r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char **&#160;</td>
          <td class="paramname"><em>result_s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01611">1611</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab50d1ee589e91d07032d0a65768dee82"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtls_check_retransmit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__clock.html#ga6e6c13e871b82d881a01d1bc8df69d23">clock_time_t</a> *&#160;</td>
          <td class="paramname"><em>next</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Checks sendqueue of given DTLS context object for any outstanding packets to be transmitted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>The DTLS context object to use. </td></tr>
    <tr><td class="paramname">next</td><td>If not NULL, <code>next</code> is filled with the timestamp of the next scheduled retransmission, or <code>0</code> when no packets are waiting. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03957">3957</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ad8c8390d0a1592207c4ea6dd0a623a9a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_check_tls_extension </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>client_hello</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00777">777</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa90f5eb6954137d5e098e29143c2586a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtls_close </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>remote</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Closes the DTLS connection associated with <code>remote</code>. This function returns zero on success, and a value less than zero on error. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01494">1494</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a187f5e145bb869a732fbed426929a4e9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtls_connect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Establishes a DTLS channel with the specified remote peer <code>dst</code>. This function returns <code>0</code> if that channel already exists, a value greater than zero when a new ClientHello message was sent, and a value less than zero on error.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
    <tr><td class="paramname">dst</td><td>The remote party to connect to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, greater or equal otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03862">3862</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ad60bf1197fa1a074f91aed508cfefa62"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtls_connect_peer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Establishes a DTLS channel with the specified remote peer. This function returns <code>0</code> if that channel already exists, a value greater than zero when a new ClientHello message was sent, and a value less than zero on error.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
    <tr><td class="paramname">peer</td><td>The peer object that describes the session. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A value less than zero on error, greater or equal otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03826">3826</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a45841106ebcb5b1373c0312842b90943"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_create_cookie </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>msglen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>cookie</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>clen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00286">286</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4b3eda5556d76e045b42b93055944ddd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void dtls_debug_keyblock </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Dump out the cipher keys and IVs used for the symetric cipher. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00533">533</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a81061928e291b6a3e7701f6a7f51b6f3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void dtls_destroy_peer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>unlink</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01508">1508</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3171c099d25ed29e31326526b8e1de84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtls_free_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Releases any storage that has been allocated for <code>ctx</code>. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03802">3802</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a8546683053c19be38b23aa9042139f4b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_get_cookie </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>msglen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> **&#160;</td>
          <td class="paramname"><em>cookie</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00261">261</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a70333bea2db35153177347b5c7700cab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a>* dtls_get_peer </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check if <code>session</code> is associated with a peer object in <code>context</code>. This function returns a pointer to the peer if found, NULL otherwise.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">context</td><td>The DTLS context to search. </td></tr>
    <tr><td class="paramname">session</td><td>The remote address and local interface </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the peer associated with <code>session</code> or NULL if none exists. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00212">212</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae272fea7269714fe7a67d6da64961731"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtls_handle_message </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msglen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Handles incoming data as DTLS message from given peer. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03591">3591</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a00707f0f82235a2432338e77dae0911d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static char* dtls_handshake_type_to_name </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>returns the name of the goven handshake type number. see IANA for a full list of types: <a href="https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-7">https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-7</a> </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00565">565</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ac203466e393ac9030d405c8f0496e9cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dtls_init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function initializes the tinyDTLS memory management and must be called first. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00163">163</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a11f53d301448aa8f1dbcfaf77441bd9c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structdtls__context__t.html">dtls_context_t</a>* dtls_new_context </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>app_data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Creates a new context object. The storage allocated for the new object must be released with <a class="el" href="dtls_8h.html#a3171c099d25ed29e31326526b8e1de84">dtls_free_context()</a>. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03740">3740</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab9733484b9a23775b1bc8b3d723282e5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_prepare_record </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *&#160;</td>
          <td class="paramname"><em>security</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data_array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_len_array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_array_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>sendbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>rlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Prepares the payload given in <code>data</code> for sending with <a class="el" href="dtls_8c.html#afdd0d094bfd136f65455e23fda087cd6">dtls_send()</a>. The <code>data</code> is encrypted and compressed according to the current security parameters of <code>peer</code>. The result of this operation is put into <code>sendbuf</code> with a prepended record header of type <code>type</code> ready for sending. As some cipher suites add a MAC before encryption, <code>data</code> must be large enough to hold this data as well (usually <code><a class="el" href="crypto_8h.html#a5c3cbd4d9e514757deda211e97c9c758">dtls_kb_digest_size(CURRENT_CONFIG(peer))</a></code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">peer</td><td>The remote peer the packet will be sent to. </td></tr>
    <tr><td class="paramname">security</td><td>The encryption paramater used to encrypt </td></tr>
    <tr><td class="paramname">type</td><td>The content type of this record. </td></tr>
    <tr><td class="paramname">data_array</td><td>Array with payloads in correct order. </td></tr>
    <tr><td class="paramname">data_len_array</td><td>sizes of the payloads in correct order. </td></tr>
    <tr><td class="paramname">data_array_len</td><td>The number of payloads given. </td></tr>
    <tr><td class="paramname">sendbuf</td><td>The output buffer where the encrypted record will be placed. </td></tr>
    <tr><td class="paramname">rlen</td><td>This parameter must be initialized with the maximum size of <code>sendbuf</code> and will be updated to hold the actual size of the stored packet on success. On error, the value of <code>rlen</code> is undefined. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Less than zero on error, or greater than zero success. </dd></dl>
<p>length of additional_data for the AEAD cipher which consists of seq_num(2+6) + type(1) + version(2) + length(2)</p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01180">1180</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a5676a0ceeeabd1ec38d378212f7af4a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtls_renegotiate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02956">2956</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa57a9ccb1344c5baf8bd3adf35f3beeb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void dtls_retransmit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structnetq__t.html">netq_t</a> *&#160;</td>
          <td class="paramname"><em>node</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03890">3890</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="afdd0d094bfd136f65455e23fda087cd6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buflen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sends the fragment of length <code>buflen</code> given in <code>buf</code> to the specified <code>peer</code>. The data will be MAC-protected and encrypted according to the selected cipher and split into one or more DTLS records of the specified <code>type</code>. This function returns the number of bytes that were sent, or <code>-1</code> if an error occurred.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
    <tr><td class="paramname">peer</td><td>The remote peer. </td></tr>
    <tr><td class="paramname">type</td><td>The content type of the record. </td></tr>
    <tr><td class="paramname">buf</td><td>The data to send. </td></tr>
    <tr><td class="paramname">buflen</td><td>The actual length of <code>buf</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Less than zero on error, the number of bytes written otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00200">200</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4aac4fa55afe2d19342136acaaaf9641"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_alert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="alert_8h.html#ab6264d1b950719f1c2e00b122cad871f">dtls_alert_level_t</a>&#160;</td>
          <td class="paramname"><em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="alert_8h.html#a41c9f2d4035bc6bf5a0f437842a9ecbd">dtls_alert_t</a>&#160;</td>
          <td class="paramname"><em>description</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01485">1485</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9cfb3c9e63f378d0d8e3d3d0c60537a5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_ccs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02156">2156</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a6b92c487825aa888acc0b55f5adc0220"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_certificate_ecdsa </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01834">1834</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="adfe6fc0d0d66e9ffaef25c2c126b1c34"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_certificate_verify_ecdh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02241">2241</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aecd3ffe8bf8a3970d3e091ce8e7c6476"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_client_hello </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>&#160;</td>
          <td class="paramname"><em>cookie</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>cookie_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02308">2308</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a12e4cab07baba9eae2a0182f4e0bf72d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_client_key_exchange </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02164">2164</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a112e0d83a0e576b5d22df60241900a67"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_finished </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>label</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>labellen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02277">2277</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a872c53139e76cab7ec387cc54ae1a11b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_handshake_msg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>&#160;</td>
          <td class="paramname"><em>header_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01361">1361</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4f06884f659f6a5120be7e0b86d29880"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_handshake_msg_hash </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>&#160;</td>
          <td class="paramname"><em>header_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>add_hash</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01323">1323</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab3af0ee4375c0da833aacec49c6fd8ad"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_hello_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02948">2948</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa89745c0af073102c9c350d28a84214d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_multi </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *&#160;</td>
          <td class="paramname"><em>security</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>buf_array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buf_len_array</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>buf_array_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Sends the data passed in <code>buf</code> as a DTLS record of type <code>type</code> to the given peer. The data will be encrypted and compressed according to the security parameters for <code>peer</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The DTLS context in effect. </td></tr>
    <tr><td class="paramname">peer</td><td>The remote party where the packet is sent. </td></tr>
    <tr><td class="paramname">type</td><td>The content type of this record. </td></tr>
    <tr><td class="paramname">buf</td><td>The data to send. </td></tr>
    <tr><td class="paramname">buflen</td><td>The number of bytes to send from <code>buf</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Less than zero in case of an error or the number of bytes that have been sent otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01407">1407</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a51ab17e2a5ac1566ba4249b787bb98a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_server_certificate_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02019">2019</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a7730a402edfca00c35bc1c7c09eb2fb9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_server_hello </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01736">1736</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ad6ebff8518bb1d53ba888baf6898ee21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_server_hello_done </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02061">2061</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="afc54bc2ed42b4b65ad8f01abca9a8772"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_server_hello_msgs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02073">2073</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a80275f06c14cbbc18095bc2f61022d15"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_server_key_exchange_ecdh </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structdtls__ecdsa__key__t.html">dtls_ecdsa_key_t</a> *&#160;</td>
          <td class="paramname"><em>key</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01924">1924</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a00f6591bce49f6122dab9827c8774ba3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_send_server_key_exchange_psk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>psk_hint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01989">1989</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab43d3a34ddaf0f5bfaa2b0b3e76e25d1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>* dtls_set_handshake_header </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>frag_offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>frag_length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>buf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Initializes <code>buf</code> as handshake header. The caller must ensure that <code>buf</code> is capable of holding at least <code>sizeof(dtls_handshake_header_t)</code> bytes. Increments message sequence number counter of <code>peer</code>. </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to the next byte after <code>buf</code> </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00424">424</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a734cf32b1c8b99e21d57006da24fd808"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>* dtls_set_record_header </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__security__parameters__t.html">dtls_security_parameters_t</a> *&#160;</td>
          <td class="paramname"><em>security</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>buf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Initializes <code>buf</code> as record header. The caller must ensure that <code>buf</code> is capable of holding at least <code>sizeof(dtls_record_header_t)</code> bytes. Increments sequence number counter of <code>security</code>. </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to the next byte after the written header. The length will be set to 0 and has to be changed before sending. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00390">390</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3742f5067d1b0693d6a41e70d4ecd5b5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void dtls_stop_retransmission </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Stops ongoing retransmissions of handshake messages for <code>peer</code>. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03941">3941</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a63f2c7e75b86bb2839b8fedf3fa9c93d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_update_parameters </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Parses the ClientHello from the client and updates the internal handshake parameters with the new data for the given <code>peer</code>. When the ClientHello handshake message in <code>data</code> does not contain a cipher suite or compression method, it is copied from the the current security parameters.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The current DTLS context. </td></tr>
    <tr><td class="paramname">peer</td><td>The remote peer whose security parameters are about to change. </td></tr>
    <tr><td class="paramname">data</td><td>The handshake message with a ClientHello. </td></tr>
    <tr><td class="paramname">data_length</td><td>The actual size of <code>data</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>-Something</code> if an error occurred, <code>0</code> on success. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00900">900</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a604f68a801e55b884f7f7f1d2f1b9c9f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int dtls_verify_peer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Checks a received Client Hello message for a valid cookie. When the Client Hello contains no cookie, the function fails and a Hello Verify Request is sent to the peer (using the write callback function registered with <code>ctx</code>). The return value is <code>-1</code> on error, <code>0</code> when undecided, and <code>1</code> if the Client Hello was good.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The DTLS context. </td></tr>
    <tr><td class="paramname">peer</td><td>The remote party we are talking to, if any. </td></tr>
    <tr><td class="paramname">session</td><td>Transport address of the remote peer. </td></tr>
    <tr><td class="paramname">msg</td><td>The received datagram. </td></tr>
    <tr><td class="paramname">msglen</td><td>Length of <code>msg</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> if msg is a Client Hello with a valid cookie, <code>0</code> or <code>-1</code> otherwise. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01540">1540</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a1e338587fb19c794c8d19bc2801f2eb2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dtls_write </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Writes the application data given in <code>buf</code> to the peer specified by <code>session</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The DTLS context to use. </td></tr>
    <tr><td class="paramname">session</td><td>The remote transport address and local interface. </td></tr>
    <tr><td class="paramname">buf</td><td>The data to write. </td></tr>
    <tr><td class="paramname">len</td><td>The actual length of <code>data</code>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes written or <code>-1</code> on error. </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00236">236</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="adb41bf916dc34af5cd79003a9243b727"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static size_t finalize_hs_hash </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>buf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01082">1082</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aa2f1fb16f297640b319ff0d864139ea5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void free_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00157">157</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a445994c602b105608f277c6fc066301d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int handle_alert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>record_header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Handles incoming Alert messages. This function returns <code>1</code> if the connection should be closed and the peer is to be invalidated. </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03496">3496</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a4d7a16c9d0cd28666a2cc8ec471aa664"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int handle_ccs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>record_header</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03457">3457</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ab199f50f39a96464ff7b532f2635ce9d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int handle_handshake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a>&#160;</td>
          <td class="paramname"><em>role</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a>&#160;</td>
          <td class="paramname"><em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l03347">3347</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a24e7d6ad9fc0d87b7285615123bdd43d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int handle_handshake_msg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structsession__t.html">session_t</a> *&#160;</td>
          <td class="paramname"><em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="peer_8h.html#ae30cd4bcffed73f79f17c09e5a1452c8">dtls_peer_type</a>&#160;</td>
          <td class="paramname"><em>role</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="state_8h.html#aea0e57fd5b857535960534b53361aa35">dtls_state_t</a>&#160;</td>
          <td class="paramname"><em>state</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l02992">2992</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a599f0d6e9134869e55b64c4f8720ebfa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int is_ecdsa_client_auth_supported </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns true if the application is configured for ecdhe_ecdsa with client authentication </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00503">503</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="abb41f4bb9b8e4218ef5115ce70ebdc21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int is_ecdsa_supported </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>is_client</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>returns true if the application is configured for ecdhe_ecdsa </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00491">491</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3bbccb275cb23e84c0a148a157955770"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int is_psk_supported </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>returns true if the application is configured for psk </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00481">481</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aaafa285eb634873480c0ff429edd8064"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned int is_record </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>msglen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Checks if <code>msg</code> points to a valid DTLS record. If </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00361">361</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a8098a728e5fff33ceeb7f57ebd48a212"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int is_tls_ecdhe_ecdsa_with_aes_128_ccm_8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a>&#160;</td>
          <td class="paramname"><em>cipher</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>returns true if the cipher matches TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00461">461</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a8bb6e8bb947b943d2af4c1886a8e72ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int is_tls_psk_with_aes_128_ccm_8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a>&#160;</td>
          <td class="paramname"><em>cipher</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>returns true if the cipher matches TLS_PSK_WITH_AES_128_CCM_8 </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00471">471</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a37965d10b44a63ea6adbf28b9dc79b75"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int known_cipher </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__context__t.html">dtls_context_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#ada7e71454d685b693df45b2c1ea0c59b">dtls_cipher_t</a>&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>is_client</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Returns <code>1</code> if <code>code</code> is a cipher suite other than <code>TLS_NULL_WITH_NULL_NULL</code> that we recognize.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctx</td><td>The current DTLS context </td></tr>
    <tr><td class="paramname">code</td><td>The cipher suite identifier to check </td></tr>
    <tr><td class="paramname">is_client</td><td>1 for a dtls client, 0 for server </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>1</code> iff <code>code</code> is recognized, </dd></dl>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00522">522</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a9e02f1c6e70dab40e56d5131a259521a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structdtls__context__t.html">dtls_context_t</a>* malloc_context </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00152">152</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a3db09acb5894f17f4745d7556555bea7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void update_hs_hash </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdtls__peer__t.html">dtls_peer_t</a> *&#160;</td>
          <td class="paramname"><em>peer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l01070">1070</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="af073bf7cefa5e49e0c939e853678d417"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int verify_ext_cert_type </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00725">725</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a04a3580764ffd4f253ce6be858806c95"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int verify_ext_ec_point_formats </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00749">749</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ad699a00b7ff5a71fa5b7fbc79a4dd9a8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int verify_ext_eliptic_curves </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00701">701</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="aecdb18ea2b899994542ec46b23528738"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char cert_asn1_header[]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line">  0x30, 0x59, </div>
<div class="line">    0x30, 0x13, </div>
<div class="line">      0x06, 0x07, </div>
<div class="line">        0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01,</div>
<div class="line">      0x06, 0x08, </div>
<div class="line">        0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07,</div>
<div class="line">      0x03, 0x42, 0x00, </div>
<div class="line">         0x04 </div>
<div class="line">}</div>
</div><!-- fragment -->
<p>Definition at line <a class="el" href="dtls_8c_source.html#l00124">124</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="ae35671d94ccea5f335546ce409aed601"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="global_8h.html#adde6aaee8457bee49c2a92621fe22b79">uint8</a> compression_methods[]</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {</div>
<div class="line">  <a class="code" href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div>
<div class="line">}</div>
<div class="ttc" id="global_8h_html_a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca"><div class="ttname"><a href="global_8h.html#a1ff555e0b1443c4cb4d17ac2161d89b2ac5b79ee16e8c0e46873fa63fdb1ab9ca">TLS_COMPRESSION_NULL</a></div><div class="ttdef"><b>Definition:</b> <a href="global_8h_source.html#l00082">global.h:82</a></div></div>
</div><!-- fragment --><p>only one compression method is currently defined </p>

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00456">456</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="abba2a2562813493d98b5671a4c5c082b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char prf_label_client[] = &quot;client&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00119">119</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a45d793d73836bf96dacb1d558f81b6c7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char prf_label_finished[] = &quot; finished&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00121">121</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a42886cd9a1fd728f47ea40d38dfabcda"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char prf_label_key[] = &quot;key expansion&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00118">118</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="a784ec579660900e758a9b7de84150c9b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char prf_label_master[] = &quot;master secret&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00117">117</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
<a class="anchor" id="aacf8643991dec574dcb09a280357ae4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char prf_label_server[] = &quot;server&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="dtls_8c_source.html#l00120">120</a> of file <a class="el" href="dtls_8c_source.html">dtls.c</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 27 2015 15:15:33 for tinydtls by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
